package com.aust.reflect;

import java.lang.reflect.Constructor;

public class Reflect3 {
    public static void main(String[] args) throws Exception {
        Class<Student> studentClass = Student.class;
        // 获取构造器
        Constructor<Student> constructor = studentClass.getDeclaredConstructor(String.class, int.class);
        System.out.println(constructor);
        // 取消权限检查
        /**
         * 在反射中，通过 getDeclaredXXX() 可以获取任意成员（包括 private）
         * 但是如果你想对这些成员 进行访问/调用/修改，那么必须加上 setAccessible(true)
         * 否则 JVM 会抛出 IllegalAccessException 异常。
         */
        constructor.setAccessible(true);
        // 创建对象
        Student student = constructor.newInstance("tangruojie", 18);
        System.out.println(student);
    }
}
